{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "之前的神经网络（密集连接神经网络和卷积神经网络）都有一个特点，没有记忆，如果需要处理的是有时序信息的输入，则需要把整个输入转换为一个大向量，当做一个整体处理。这种网络叫做**前馈网络(feedforward network)**。\n",
    "\n",
    "RNN 内部有一个循环结构，每轮将上一个时间节点的结果当做当前状态传递给下一个时间点，类似编程中的**递归**。\n",
    "\n",
    "这里写一个 RNN 的简单示例："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "\n",
    "timesteps = 100\n",
    "input_features = 32\n",
    "output_features = 64\n",
    "\n",
    "inputs = np.random.random((timesteps, input_features))\n",
    "state_t = np.zeros((output_features,))\n",
    "\n",
    "W = np.random.random((output_features, input_features))\n",
    "U = np.random.random((output_features, output_features))\n",
    "b = np.random.random((output_features,))\n",
    "\n",
    "successive_outputs = []\n",
    "for input_t in inputs:\n",
    "    output_t = np.tanh(np.dot(W, input_t) + np.dot(U, state_t) + b)\n",
    "    \n",
    "    successive_outputs.append(output_t)\n",
    "    \n",
    "    state_t = output_t\n",
    "    \n",
    "final_output_sequence = np.stack(successive_outputs, axis=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Keras 提供了 RNN 的实例：SimpleRNN 层"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:63: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:488: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:3626: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:1238: calling reduce_sum_v1 (from tensorflow.python.ops.math_ops) with keep_dims is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "keep_dims is deprecated, use keepdims instead\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "embedding_1 (Embedding)      (None, None, 32)          320000    \n",
      "_________________________________________________________________\n",
      "simple_rnn_1 (SimpleRNN)     (None, 32)                2080      \n",
      "=================================================================\n",
      "Total params: 322,080\n",
      "Trainable params: 322,080\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "from keras.models import Sequential\n",
    "from keras.layers import Embedding, SimpleRNN\n",
    "model = Sequential()\n",
    "model.add(Embedding(10000, 32))\n",
    "model.add(SimpleRNN(32))\n",
    "model.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "也可以将RNN的输出设定为完整的序列：return_sequences=True,\n",
    "还可以将多个 RNN 层堆叠，此时中间 RNN 层则需要将完整的序列输出。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loading data...\n",
      "25000 train sequences\n",
      "25000 test sequences\n",
      "Pad Sequences (sample X time)\n",
      "input_train shape (25000, 200)\n",
      "input_test shape (25000, 200)\n"
     ]
    }
   ],
   "source": [
    "# 准备数据\n",
    "from keras.datasets import imdb\n",
    "from keras.preprocessing import sequence\n",
    "\n",
    "max_features= 10000\n",
    "maxlen = 200\n",
    "batch_siz = 32\n",
    "\n",
    "print('Loading data...')\n",
    "(input_train, y_train), (input_test, y_test) = imdb.load_data(num_words=max_features)\n",
    "print(len(input_train), 'train sequences')\n",
    "print(len(input_test), 'test sequences')\n",
    "\n",
    "print('Pad Sequences (sample X time)')\n",
    "input_train = sequence.pad_sequences(input_train, maxlen=maxlen)\n",
    "input_test = sequence.pad_sequences(input_test, maxlen=maxlen)\n",
    "print('input_train shape', input_train.shape)\n",
    "print('input_test shape', input_test.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/optimizers.py:711: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:2921: The name tf.log is deprecated. Please use tf.math.log instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/tensorflow_core/python/ops/nn_impl.py:183: where (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.where in 2.0, which has the same broadcast rule as np.where\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:671: calling Constant.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Call initializer instance with the dtype argument instead of passing it to the constructor\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:949: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:936: The name tf.assign is deprecated. Please use tf.compat.v1.assign instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:2353: The name tf.Session is deprecated. Please use tf.compat.v1.Session instead.\n",
      "\n",
      "Train on 20000 samples, validate on 5000 samples\n",
      "Epoch 1/10\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:158: The name tf.get_default_session is deprecated. Please use tf.compat.v1.get_default_session instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:163: The name tf.ConfigProto is deprecated. Please use tf.compat.v1.ConfigProto instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:172: The name tf.global_variables is deprecated. Please use tf.compat.v1.global_variables instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:180: The name tf.is_variable_initialized is deprecated. Please use tf.compat.v1.is_variable_initialized instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:187: The name tf.variables_initializer is deprecated. Please use tf.compat.v1.variables_initializer instead.\n",
      "\n",
      "20000/20000 [==============================] - 6s 311us/step - loss: 0.6091 - acc: 0.6577 - val_loss: 0.5171 - val_acc: 0.7590\n",
      "Epoch 2/10\n",
      "20000/20000 [==============================] - 5s 266us/step - loss: 0.3776 - acc: 0.8431 - val_loss: 0.3740 - val_acc: 0.8470\n",
      "Epoch 3/10\n",
      "20000/20000 [==============================] - 5s 266us/step - loss: 0.2795 - acc: 0.8901 - val_loss: 0.3857 - val_acc: 0.8298\n",
      "Epoch 4/10\n",
      "20000/20000 [==============================] - 6s 281us/step - loss: 0.2113 - acc: 0.9218 - val_loss: 0.5467 - val_acc: 0.7350\n",
      "Epoch 5/10\n",
      "20000/20000 [==============================] - 6s 277us/step - loss: 0.1575 - acc: 0.9440 - val_loss: 0.3562 - val_acc: 0.8642\n",
      "Epoch 6/10\n",
      "20000/20000 [==============================] - 5s 262us/step - loss: 0.1022 - acc: 0.9657 - val_loss: 0.4711 - val_acc: 0.8394\n",
      "Epoch 7/10\n",
      "20000/20000 [==============================] - 5s 262us/step - loss: 0.0670 - acc: 0.9795 - val_loss: 0.5173 - val_acc: 0.8298\n",
      "Epoch 8/10\n",
      "20000/20000 [==============================] - 5s 262us/step - loss: 0.0406 - acc: 0.9882 - val_loss: 0.5010 - val_acc: 0.8552\n",
      "Epoch 9/10\n",
      "20000/20000 [==============================] - 5s 267us/step - loss: 0.0257 - acc: 0.9932 - val_loss: 0.5857 - val_acc: 0.8410\n",
      "Epoch 10/10\n",
      "20000/20000 [==============================] - 5s 262us/step - loss: 0.0161 - acc: 0.9957 - val_loss: 0.6049 - val_acc: 0.8478\n"
     ]
    }
   ],
   "source": [
    "# 开始训练\n",
    "from keras.layers import Dense\n",
    "\n",
    "model = Sequential()\n",
    "model.add(Embedding(max_features, 32))\n",
    "model.add(SimpleRNN(32))\n",
    "model.add(Dense(1, activation='sigmoid'))\n",
    "\n",
    "model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['acc'])\n",
    "history = model.fit(input_train, y_train, epochs=10, batch_size=128, validation_split=0.2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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ncXnn38OwN69e+nfvz+JiYlcddVVpKSksHjx4iLjS01NZfz48axfv54tW7Ycmv7uu++SnJxM+/bt6dmzJwB79uxhyJAhtGvXjnbt2vHPf/4z8gfMGE8sVJmUS0k6DGPGQHx8wWnx8W56xBR3BvDrcawl+mifpUNL9GvWrFER0QULFhyav2PHDlVVPXjwoHbp0kWXLVumqqqdO3fWRYsW6cGDBxXQ9957T1VVR4wYoU888YSqqj700EM6bty4Q8vff//9qqo6a9YsveSSS1RV9YknntBbb71VVVUXL16sxx13nC5atOiIODds2KBnnXWWqqred999On78eFVV3bJlizZp0kTT09MLxHv33XfrPffco6ru18nOnTuP+hhZid6UZOpU1fj4gv+f8fGR/eUdjlgp0atGphaCYynRVzTlfZY+/fTTSUlJOfQ+NTWV5ORkkpOTWbFiBcuXLz9ineOPP55LL70UgLPPPpv09PQit33llVcescxnn33GgAFu7Or27dvTunXrItedPn06v/3tbwEYMGAAqampAHzxxRd069aNZs2aAVCvXj0A/vOf/3DbbbcBruVM3bp1wz4GxpRFeVx8DEe5lKTDNHgwpKdDXp57jlRrm3wx13vlsWra1FXXFDU9Gk444YRDr9esWcMzzzzD119/TZ06dbjmmmuKbFNevXr1Q6+rVKlCTk5OkduuUaNGqcsUJzU1le3bt/P66+5m5M2bN7N+/foybcOYaIiVKpP8ZPrQQ27fTZu6JB/pJBsLAlei9/Ms/dNPP1GrVi1q167Nli1beP/99yO+j86dOzNjxgwAli5dWuQvhuXLl5OTk0NmZibp6emkp6dz3333MX36dM477zzmzZvHRu9suHOnu2xy8cUXM3HiRMBV5/34Y5lvYDYmLMUVuqJVGCtJtEvSsSJwiX7wYJg8GZo1AxH3PHly+XyBycnJJCYm0rJlS6677jo6d+4c8X3ccccdZGZmkpiYyB//+EcSExM58cQTCyyTmppKv379Ckzr378/qampnHzyyUyaNIm+ffvSvn17BnsHZtSoUWzbto02bdqQlJTEp59+GvHYTWzw+0JoLFWZVBrFVd779YhE88ogO3jwoO7bt09VVVevXq0JCQl68OBBn6MqyL6v2BUrF0Kj2QS6sqKEi7GBq6MPup9//pnu3buTk5ODqvLiiy9Stap9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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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J96DODZv3kzXrl3p2rUrBx98MM2bN9/7fOfOnTGd48orr+TLL78s9piJEyeSEafOySeccAKLFi2Ky7mcc8ktaReJzhvEkdcAlTeIA8r+kbdx48Z7k+M999xD/fr1ue222/Ido6qoKtWqFf5eOGXKlBKvM3To0LIF6JxzxUjaof+VOYhjxYoVpKamkp6eTocOHVi3bh1DhgwhLS2NDh06MGbMmL3H5pWYc3NzadSoESNHjqRLly4ce+yxbNiwAYA777yTxx57bO/xI0eOpGfPnhx55JH897//BWDbtm1ceOGFpKamMmDAANLS0kosib/44ot06tSJjh07cscddwCQm5vL4MGD925/4oknAHj00UdJTU2lc+fOXHrppXG/Z865ype0Cb2yB3F88cUXjBgxgqysLJo3b864ceOYN28en3/+Oe+99x5ZWVm/ec2WLVvo1asXn3/+OcceeyzPP/98oedWVT777DMeeeSRvW8OTz75JAcffDBZWVmMHj2ahQsXFhtfdnY2d955J7NmzWLhwoX85z//4Y033mD+/Pls2rSJxYsXs2TJEi677DIAHn74YRYtWkRmZiZPPfVUOe+OSzQ+p0zVlLQJvajBGhU1iOOwww4jLS1t7/OXX36Z7t270717d5YtW1ZoQq9bty5nnnkmAD169GDVqlWFnvuCCy74zTEfffQRAwcOBKBLly506FB8s8Snn37KySefTJMmTahZsyaXXHIJs2fP5vDDD+fLL79k+PDhzJw5k4YNGwLQoUMHLr30UjIyMnxgUMj4nDJVV9Im9LFjbdBGtIocxLHffvvtfbx8+XIef/xxPvjgAzIzM+nbt2+h/bFr1aq193H16tXJzc0t9Ny1a9cu8Ziyaty4MZmZmZx44olMnDiR6667DoCZM2dy/fXXM3fuXHr27Mnu3bvjel0XHJ9TpupK2oQe5CCOn3/+mQYNGrD//vuzbt06Zs6cGfdrHH/88bz66qsALF68uNBPANGOPvpoZs2axebNm8nNzWXq1Kn06tWLjRs3oqpcdNFFjBkzhgULFrB7926ys7M5+eSTefjhh9m0aRM5BTOAS1o+p0zVlbS9XCC4QRzdu3cnNTWVdu3a0bp1a44//vi4X+PGG2/ksssuIzU1de9XXnVJYVq0aMF9991H7969UVXOPfdczj77bBYsWMDVV1+NqiIiPPTQQ+Tm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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "acc = history.history['acc']\n",
    "val_acc = history.history['val_acc']\n",
    "loss = history.history['loss']\n",
    "val_loss = history.history['val_loss']\n",
    "\n",
    "epochs = range(1, len(acc) + 1)\n",
    "\n",
    "plt.plot(epochs, acc, 'bo', label='Training Acc')\n",
    "plt.plot(epochs, val_acc, 'b', label='Validation Acc')\n",
    "plt.title('Training and Validation Accuracy')\n",
    "plt.legend()\n",
    "\n",
    "plt.figure()\n",
    "\n",
    "plt.plot(epochs, loss, 'bo', label='Training loss')\n",
    "plt.plot(epochs, val_loss, 'b', label='Validation loss')\n",
    "plt.title('Training and Validation Accuracy')\n",
    "plt.legend()\n",
    "\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "使用 LSTM 重新训练上述的 IMDB 的数据集："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/optimizers.py:711: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:2921: The name tf.log is deprecated. Please use tf.math.log instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/tensorflow_core/python/ops/nn_impl.py:183: where (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.where in 2.0, which has the same broadcast rule as np.where\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:671: calling Constant.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Call initializer instance with the dtype argument instead of passing it to the constructor\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:949: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:936: The name tf.assign is deprecated. Please use tf.compat.v1.assign instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:2353: The name tf.Session is deprecated. Please use tf.compat.v1.Session instead.\n",
      "\n",
      "Train on 20000 samples, validate on 5000 samples\n",
      "Epoch 1/10\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:158: The name tf.get_default_session is deprecated. Please use tf.compat.v1.get_default_session instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:163: The name tf.ConfigProto is deprecated. Please use tf.compat.v1.ConfigProto instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:172: The name tf.global_variables is deprecated. Please use tf.compat.v1.global_variables instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:180: The name tf.is_variable_initialized is deprecated. Please use tf.compat.v1.is_variable_initialized instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:187: The name tf.variables_initializer is deprecated. Please use tf.compat.v1.variables_initializer instead.\n",
      "\n",
      "20000/20000 [==============================] - 21s 1ms/step - loss: 0.5486 - acc: 0.7452 - val_loss: 0.5067 - val_acc: 0.7586\n",
      "Epoch 2/10\n",
      "20000/20000 [==============================] - 19s 966us/step - loss: 0.3129 - acc: 0.8754 - val_loss: 0.2976 - val_acc: 0.8746\n",
      "Epoch 3/10\n",
      "20000/20000 [==============================] - 19s 971us/step - loss: 0.2424 - acc: 0.9071 - val_loss: 0.6217 - val_acc: 0.7826\n",
      "Epoch 4/10\n",
      "20000/20000 [==============================] - 20s 1ms/step - loss: 0.2124 - acc: 0.9199 - val_loss: 0.3157 - val_acc: 0.8750\n",
      "Epoch 5/10\n",
      "20000/20000 [==============================] - 21s 1ms/step - loss: 0.1821 - acc: 0.9337 - val_loss: 0.2981 - val_acc: 0.8816\n",
      "Epoch 6/10\n",
      "20000/20000 [==============================] - 20s 1ms/step - loss: 0.1629 - acc: 0.9408 - val_loss: 0.3695 - val_acc: 0.8540\n",
      "Epoch 7/10\n",
      "20000/20000 [==============================] - 20s 989us/step - loss: 0.1487 - acc: 0.9479 - val_loss: 0.3476 - val_acc: 0.8686\n",
      "Epoch 8/10\n",
      "20000/20000 [==============================] - 20s 1ms/step - loss: 0.1359 - acc: 0.9530 - val_loss: 0.3469 - val_acc: 0.8714\n",
      "Epoch 9/10\n",
      "20000/20000 [==============================] - 21s 1ms/step - loss: 0.1258 - acc: 0.9561 - val_loss: 0.3780 - val_acc: 0.8784\n",
      "Epoch 10/10\n",
      "20000/20000 [==============================] - 20s 980us/step - loss: 0.1131 - acc: 0.9607 - val_loss: 0.5247 - val_acc: 0.8288\n"
     ]
    }
   ],
   "source": [
    "from keras.layers import LSTM, Dense\n",
    "\n",
    "model = Sequential()\n",
    "model.add(Embedding(max_features, 32))\n",
    "model.add(LSTM(32))\n",
    "model.add(Dense(1, activation='sigmoid'))\n",
    "model.compile(optimizer='rmsprop',\n",
    "             loss='binary_crossentropy',\n",
    "             metrics=['acc'])\n",
    "history = model.fit(input_train, y_train, epochs=10, batch_size=128, validation_split=0.2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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XEK34YvGJKdwEvpS4BwRaSkiVYEhwNxC+7yFa50jIo1wJZj1EYzT+H37LWzcWLDcEpCZCTt22GRdxiSrEhO6quYBtwHzgTXAK6q6SkQmi8gA/27zgV0ishpYCPw/Vd0VraCTWeBy/1AJvX9/99WGLxqTnMKqoavqe8B7hbbdG/S9AuP9NxNFPh+0aAFnn33yY6edBl26uIR+zz0VH5sxxlt2pWgcyc93I1z69XMXEoWSmQn//jf8+GPFxmZMSfr06XPSRULTpk1j9OjRxT6vVq1aAGzdupXBgweH3Kd3795kZ2cXe5xp06YVuMDn8ssvj8g8K3/84x95+OGHy32cSLCEHkeys2H37tDlloDA8MVAacaYWDF06FDmzJlTYNucOXMYOnRoWM8/44wzeO2118p8/sIJ/b333qNevXplPl4ssoQeRxYscC3zvn2L3ueCC6BePaujm9gzePBg3n333eOLWWzcuJGtW7dy0UUXsX//fvr27UuXLl1o3749//znP096/saNG2nXrh0Ahw4dYsiQIbRp04ZBgwZx6NCh4/uNHj36+NS7//M//wPA9OnT2bp1K3369KFPnz4ApKamsnPnTgCmTp1Ku3btaNeu3fGpdzdu3EibNm341a9+Rdu2bbnssssKnCeUL774gu7du9OhQwcGDRrEj/6PytOnTz8+nW5gUrCPP/74+AIfnTt3Zt++fWV+bQPifyR9EvH5oHPn4heyqFzZteDff98NcbQlJE0ov/lN5EdDdeoE/lwYUoMGDejWrRvz5s1j4MCBzJkzh2uuuQYRoXr16rz55pvUqVOHnTt30r17dwYMGFDkuppPPPEENWrUYM2aNaxYsaLA9LdTpkyhQYMG5Ofn07dvX1asWMG4ceOYOnUqCxcupFGhf6Bly5bxzDPPsGTJElSVCy64gF69elG/fn2++eYbXnrpJf7+979zzTXX8Prrrxc7v/kNN9zAY489Rq9evbj33nv505/+xLRp07j//vvZsGED1apVO17mefjhh5kxYwY9e/Zk//79VK9evRSvdmjWQo8T+/e7GRb79St538xM2LYN/vvf6MdlTGkEl12Cyy2qyt13302HDh3o168fW7ZsYceOHUUeJysr63hi7dChAx06dDj+2CuvvEKXLl3o3Lkzq1atKnHirU8//ZRBgwZRs2ZNatWqxVVXXcUnn3wCQMuW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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "acc = history.history['acc']\n",
    "val_acc = history.history['val_acc']\n",
    "loss = history.history['loss']\n",
    "val_loss = history.history['val_loss']\n",
    "\n",
    "epochs = range(1, len(acc) + 1)\n",
    "\n",
    "plt.plot(epochs, acc, 'bo', label='Training Acc')\n",
    "plt.plot(epochs, val_acc, 'b', label='Validation Acc')\n",
    "plt.title('Training and Validation Accuracy')\n",
    "plt.legend()\n",
    "\n",
    "plt.figure()\n",
    "\n",
    "plt.plot(epochs, loss, 'bo', label='Training loss')\n",
    "plt.plot(epochs, val_loss, 'b', label='Validation loss')\n",
    "plt.title('Training and Validation Accuracy')\n",
    "plt.legend()\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这里精确度大概85%+，数据量下降了，精确度提高了点。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
